Skip to content

Serialize workflow runs per PR#47

Open
Phlogistique wants to merge 2 commits into
mainfrom
claude/serialize-runs-3njvdx
Open

Serialize workflow runs per PR#47
Phlogistique wants to merge 2 commits into
mainfrom
claude/serialize-runs-3njvdx

Conversation

@Phlogistique

Copy link
Copy Markdown
Collaborator

Two runs can act on the same PR concurrently: the push that finishes a conflict resolution fires a synchronize event while the conflict label is still attached (the label is the gate and only comes off at the end), so the follow-up run races the one that triggered it. A per-PR concurrency group queues the follow-up instead; cancel-in-progress: false so a running update is never killed mid-mutation.

The group is keyed by PR number rather than repo-wide on purpose: GitHub keeps only the newest pending run per group, so a repo-wide group could silently drop the stack update for one merge when several land in quick succession.

Also added to both README example workflows.

🤖 Generated with Claude Code

https://claude.ai/code/session_01JHvKryT4QUpHYdNq9YEQxX


Generated by Claude Code

claude added 2 commits June 9, 2026 22:01
Two runs can act on the same PR concurrently: the push that finishes a
conflict resolution fires a synchronize event while the conflict label
is still attached, so the follow-up run races the one that triggered it
(the label is its gate and only comes off at the end). A per-PR
concurrency group queues the follow-up instead; cancel-in-progress stays
off so a running update is never killed mid-mutation. The group is
keyed by PR number rather than repo-wide because GitHub keeps only the
newest pending run in a group - a repo-wide group could silently drop
the update for one merge when several land in quick succession.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01JHvKryT4QUpHYdNq9YEQxX
A run waiting on its concurrency-group slot reports status "pending",
which the wait loop treated as fatal instead of sleeping. Surfaced as
soon as the per-PR concurrency group queued a merge-triggered run
behind a still-running synchronize run.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01JHvKryT4QUpHYdNq9YEQxX
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants